package cn.outsourcing.supermarket.service;

import cn.outsourcing.supermarket.common.PageResult;
import cn.outsourcing.supermarket.dto.OnlyIdPayloadDTO;
import cn.outsourcing.supermarket.dto.backstage.BackstageOnlyIdPageDTO;
import cn.outsourcing.supermarket.dto.backstage.BackstageUserListDTO;
import cn.outsourcing.supermarket.vo.backstage.BackstageUserDataInfoVO;
import cn.outsourcing.supermarket.vo.backstage.BackstageUserListVO;
import cn.outsourcing.supermarket.vo.hiolabs.HiolabsCartVO;
import cn.outsourcing.supermarket.vo.hiolabs.HiolabsGoodsVO;

/**
 * 后台用户服务
 *
 * @author gzkemays
 * @since 2021/11/4 18:17
 */
public interface BackstageUserService {
  /**
   * 更新用户数据
   *
   * @param dto 用户名
   * @return 更新结果
   */
  Integer updateInfo(BackstageUserListDTO dto);

  /**
   * 获取用户信息
   *
   * @param dto 用户id
   * @return 用户信息
   */
  BackstageUserListVO getUserInfo(OnlyIdPayloadDTO dto);

  /**
   * 统计用户数据
   *
   * @param dto 用户 id
   * @return 统计数据结果集
   */
  BackstageUserDataInfoVO getUserDataInfo(OnlyIdPayloadDTO dto);

  /**
   * 获取用户的购物车数据
   *
   * @param dto 用户分页入参
   * @return 用户购物车数据
   */
  PageResult<HiolabsCartVO> getCartShop(BackstageOnlyIdPageDTO dto);

  /**
   * 获取用户的足迹数据
   *
   * @param dto 用户分页入参
   * @return 户的足迹数据
   */
  PageResult<HiolabsGoodsVO> getFootPrint(BackstageOnlyIdPageDTO dto);
}
